package cn.lg.soar.activiti.api.utils;

import java.io.Serializable;
import java.util.Collection;
import java.util.stream.Stream;

/**
 * @author luguoxiang
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
public interface ProcessUtil {

    /**
     * 角色转候选人
     * @param role
     * @return
     */
    static String roleToCandidate(Serializable role) {
        return "R:" + role;
    }

    /**
     * 角色转候选人（批量）
     * @param roles
     * @return
     */
    static Stream<String> roleToCandidateBatch(Collection<? extends Serializable> roles) {
        return roles.stream().map(ProcessUtil::roleToCandidate);
    }

    /**
     * 机构转候选人
     * @param org
     * @return
     */
    static String orgToCandidate(Serializable org) {
        return "O:" + org;
    }

    /**
     * 机构转候选人（批量）
     * @param orgs
     * @return
     */
    static Stream<String> orgToCandidateBatch(Collection<? extends Serializable> orgs) {
        return orgs.stream().map(ProcessUtil::orgToCandidate);
    }

}
